package com.gosophia.conferenceManagement.starting.service;

import com.gosophia.commons.exception.BusinessException;
import com.gosophia.conferenceManagement.starting.entity.ConferenceStartingTransientStore;

/**
 * 会议发起暂存接口
 * 
 * @author tianchunyu
 * 
 */
public interface ConferenceTransientStoreService {

	/**
	 * 保存发起暂存
	 * @param conferenceStartingTransientStore 暂存实体 不能为null
	 * @return 存储后的实体（带id）
	 * @throws BusinessException 保存失败时
	 */
	public ConferenceStartingTransientStore saveTransientInfo(
			ConferenceStartingTransientStore conferenceStartingTransientStore)
			throws BusinessException;

	/**
	 * 删除暂存实体
	 * @param conferenceStartingTransientStore 暂存实体 不能为null
	 * @throws BusinessException 删除失败时
	 */
	public void deleteTransientInfo(
			ConferenceStartingTransientStore conferenceStartingTransientStore)
			throws BusinessException;

	/**
	 * 更新暂存
	 * @param conferenceStartingTransientStore 要更新的字段 不能为null
	 * @return 更新后的暂存实体
	 * @throws BusinessException 更新失败时
	 */
	public ConferenceStartingTransientStore updateTransientInfo(
			ConferenceStartingTransientStore conferenceStartingTransientStore)
			throws BusinessException;
    /**
     * 根据jobId查询暂存
     * @param jobId 关联任务编号 不能为null
     * @return 根据jobId查询的暂存实体 没有值时返回null
     */
	public ConferenceStartingTransientStore findTransientInfoByJobId(Long jobId);

	/**
	 * 根据操作人编号查询暂存
	 * @param userInfoId 操作人编号 不能为null
	 * @return 根据操作人编号的查询暂存实体 没有值时返回null
	 */
	public ConferenceStartingTransientStore findTransientInfoByCreator(
			Long userInfoId);

	/**
	 * 根据暂存编号查询暂存
	 * @param transientInfoId 暂存编号 不能为null
	 * @return 根据暂存编号查询的暂存实体 没有值时返回null
	 */
	public ConferenceStartingTransientStore findTransientInfoById(
			Long transientInfoId);
	
	/**
	 * 根据暂存编号删除暂存
	 * @param transientInfoId 暂存编号 不能为null
	 */
	public void deleteTransientInfoById(Long transientInfoId);

}
